package com.atguigu.gulimall.coupon;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * 1.如何使用Nacos作为配置中心统一管理配置
 *  1) 引入依赖，alibaba-nacos-config
 *  2) 创建一个bootstrap.properties
 *      spring.application.name=gulimall-coupon
 *      spring.cloud.nacos.config.server-addr=127.0.0.1:8848
 *  3) 需要给配置中心默认添加一个叫数据集(Data Id)gulimall-coupon.properties
 *      默认规则:应用名.properties
 *  4) 给 应用名.properties 添加任何配置
 *  5) 动态获取配置  @RefreshScope 动态获取刷新配置，@Value 获取到配置项的值
 *       如果配置中心和当前应用的配置文件都配置了相同的项，优先使用配置中心的配置
 *
 * 2. 细节
 *    1)命名空间，配置隔离
 *          默认:public(保留空间) : 默认新增的所有配置都在public空间
 *          1.开发，测试，生产：利用命名空间实现环境隔离，
 *          在bootstrap.properties上需要哪个命名空间下的配置，就在该配置文件中
 *          加上spring.cloud.nacos.config.namespace= 命名空间id
 *          2. 可以给每个微服务创建自己的命名空间
 *
 *    2)配置集：  所有配置的集合
 *    3)配置集ID： Data ID(类似于文件名)
 *    4)配置分组
 *      1. 默认所有的配置集都属于Default_Group
 *      2.通过spring.cloud.nacos.config.namespace=组名，配置分组
 *      可实现环境隔离
 */
@MapperScan("com.atguigu.gulimall.coupon.dao")
@SpringBootApplication
@EnableDiscoveryClient        //开启服务注册
public class GulimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }

}
